package org.huangrui.juc.day04.queue;

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.TimeUnit;

/**
 * 阻塞队列
 * @Author hr
 * @Create 2024-03-31 22:56
 */
public class T01_BlockingQueue {
    public static void main(String[] args) throws InterruptedException {
        //创建阻塞队列
        BlockingQueue<String> blockingQueue = new ArrayBlockingQueue<>(3);

        //第一组
       // System.out.println(blockingQueue.add("a"));
       // System.out.println(blockingQueue.add("b"));
       // System.out.println(blockingQueue.add("c"));
       // System.out.println(blockingQueue.element());
       //
       // System.out.println(blockingQueue.add("www"));
       // System.out.println(blockingQueue.remove());
       // System.out.println(blockingQueue.remove());
       // System.out.println(blockingQueue.remove());
       // System.out.println(blockingQueue.remove());

        //第二组
       // System.out.println(blockingQueue.offer("a"));
       // System.out.println(blockingQueue.offer("b"));
       // System.out.println(blockingQueue.offer("c"));
       // System.out.println(blockingQueue.offer("www"));
       //
       // System.out.println(blockingQueue.poll());
       // System.out.println(blockingQueue.poll());
       // System.out.println(blockingQueue.poll());
       // System.out.println(blockingQueue.poll());

        //第三组
       // blockingQueue.put("a");
       // blockingQueue.put("b");
       // blockingQueue.put("c");
       // // blockingQueue.put("w");
       //
       // System.out.println(blockingQueue.take());
       // System.out.println(blockingQueue.take());
       // System.out.println(blockingQueue.take());
       // System.out.println(blockingQueue.take());

        //第四组
        System.out.println(blockingQueue.offer("a"));
        System.out.println(blockingQueue.offer("b"));
        System.out.println(blockingQueue.offer("c"));
        System.out.println(blockingQueue.offer("w",3L, TimeUnit.SECONDS));
    }
}
